/*package com.exprecards.common.web;

import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.servlet.http.HttpSession;

import com.exprecards.common.enums.ETipoParametro;
import com.exprecards.common.persistence.DAOFactory;
import com.exprecards.common.persistence.dto.GamTbCevitadoAudit;
import com.exprecards.common.persistence.dto.GamTbCevitadoAuditPk;
import com.exprecards.common.persistence.dto.GamTbDxAudit;
import com.exprecards.common.persistence.dto.GamTbDxAuditPk;
import com.exprecards.common.persistence.dto.GamTbPg;
import com.exprecards.common.persistence.exceptions.GamTbPgDaoException;
import com.exprecards.common.util.WebUtils;

@ManagedBean(name = "registroCostoEvitadoBean")
@ViewScoped
public class RegistroCostoEvitadoBean extends GenericCrudBean<GamTbCevitadoAudit> {

	private static final long serialVersionUID = 1L;

	@ManagedProperty("#{userSessionBean}")
	private UserSessionBean userSessionBean;
	
	
	private GamTbPg [] costoEvitado = null;
	private List<SelectItem> costoEvitadoList = null;
	
	private int operacion = 0;
	private boolean  showPopupPanelDuplicados = true;
	private GamTbCevitadoAudit valorActualBean;
	
	
	public boolean isShowPopupPanelDuplicados() {
		return showPopupPanelDuplicados;
	}

	public void setShowPopupPanelDuplicados(boolean showPopupPanelDuplicados) {
		this.showPopupPanelDuplicados = showPopupPanelDuplicados;
	}

	public RegistroCostoEvitadoBean(){
		super();
		
		valorActualBean= new GamTbCevitadoAudit();
		
		FacesContext facesContext = FacesContext.getCurrentInstance();
		HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
		
		userSessionBean = (UserSessionBean)session.getAttribute("userSessionBean");
		
		try {
			costoEvitado = DAOFactory.getGamTbPgDao().findWhereTpEquals(ETipoParametro.COSTO_EVITADO.getValue(),"A",userSessionBean.getCliente().getId());
			costoEvitadoList = WebUtils.createSelectItemParametrosCE(costoEvitado,true);
		} catch (GamTbPgDaoException e) {
			e.printStackTrace();
		}
		
		this.lista = consultar();
	}
	
	@Override
	protected boolean create() throws Exception{
		
		boolean result = false;
		
		this.valorActual.setRegAuditoria(userSessionBean.getRegistroAuditoria().getId());
		this.valorActual.setFechaCreacion(new Date());
		this.valorActual.setUsuarioCreacion(userSessionBean.getUsuario().getId());
		this.valorActual.setPTipoAuditoria(userSessionBean.getTipoAuditoria().getId());
		
		this.valorActual.setFechaVisita(userSessionBean.getFechaVisita());
		
		operacion=1;
		
		GamTbCevitadoAudit sal[] = DAOFactory.getGamTbCevitadoAuditDao().findWhereRegAuditoriaEquals(userSessionBean.getRegistroAuditoria().getId());
		for(int i=0;i<sal.length;i++){
			if (sal[i].getPCostoEvitado()==this.valorActual.getPCostoEvitado()){
				this.showPopupPanelDuplicados = true;
				clonar();
			}
		}
		
		if(!this.showPopupPanelDuplicados){
			DAOFactory.getGamTbCevitadoAuditDao().insert(this.valorActual);
			
			result=true;
		}
		
		return result;
	}
	
	@Override
	protected boolean update() throws Exception{
		
		boolean result = false;
		
		this.valorActual.setFechaUltModif(new Date());
		this.valorActual.setUsuarioUltModif(userSessionBean.getUsuario().getId());
		
        operacion=2;
		
		GamTbCevitadoAudit sal[] = DAOFactory.getGamTbCevitadoAuditDao().findWhereRegAuditoriaEquals(userSessionBean.getRegistroAuditoria().getId());
		for(int i=0;i<sal.length;i++){
			if (sal[i].getPCostoEvitado()==this.valorActual.getPCostoEvitado()){
				this.showPopupPanelDuplicados = true;
				clonar();
			}
		}
		
		if(!this.showPopupPanelDuplicados){
			DAOFactory.getGamTbCevitadoAuditDao().update(new GamTbCevitadoAuditPk(this.valorActual.getId()),this.valorActual);
			result=true;
		}
		
		return result;
	}

     private void clonar(){
		
		valorActualBean.setId(this.valorActual.getId());
		valorActualBean.setPCostoEvitado(this.valorActual.getPCostoEvitado());   
		valorActualBean.setFechaCreacion(this.valorActual.getFechaCreacion());
		valorActualBean.setUsuarioCreacion(this.valorActual.getUsuarioCreacion());
		valorActualBean.setPTipoAuditoria(this.valorActual.getPTipoAuditoria());
		valorActualBean.setFechaVisita(this.valorActual.getFechaVisita());
		valorActualBean.setRegAuditoria(this.valorActual.getRegAuditoria());
		valorActualBean.setObservacion(this.valorActual.getObservacion());
		valorActualBean.setFechaUltModif(this.valorActual.getFechaUltModif());
		valorActualBean.setUsuarioUltModif(this.valorActual.getUsuarioUltModif());
		valorActualBean.setValorReal(this.valorActual.getValorReal());
		valorActualBean.setValorSupuesto(this.valorActual.getValorSupuesto());
		
	}
	
	public String guardar(String a){
		
		showPopupPanelDuplicados = !doSave();
		
		return a;
	}
	
	public void aceptarValidacion() throws Exception{
		
		showPopupPanelDuplicados=false;
		
		if(operacion==1){
			DAOFactory.getGamTbCevitadoAuditDao().insert(valorActualBean);
		}
		if(operacion==2){
			DAOFactory.getGamTbCevitadoAuditDao().update(new GamTbCevitadoAuditPk(this.valorActualBean.getId()),this.valorActualBean);
		}
		
		lista = consultar();
	}
	
	
	@Override
	protected void editable(String id) throws Exception{
		valorActual = DAOFactory.getGamTbCevitadoAuditDao().findByPrimaryKey(Integer.parseInt(id));
	}

	@Override
	protected void delete(String id) throws Exception{
		DAOFactory.getGamTbCevitadoAuditDao().delete(new GamTbCevitadoAuditPk(Integer.parseInt(id)));
	}

	@Override
	protected List<Map<String, String>> consultar() {
		return DAOFactory.getConsultasDao().consultaCostoEvitado(userSessionBean.getRegistroAuditoria().getId());
	}

	@Override
	protected GamTbCevitadoAudit createNew() {
		return new GamTbCevitadoAudit();
	}

	@Override
	protected boolean isId() {
		boolean result = false;
		if(valorActual.getId()==0){
			result = false;  
		}
		else{
			result = true;
		}
		return result;
	}
	
	@Override
	protected void clean(){
		
	}
	

	*//**
	 * @return the userSessionBean
	 *//*
	public UserSessionBean getUserSessionBean() {
		return userSessionBean;
	}

	*//**
	 * @param userSessionBean the userSessionBean to set
	 *//*
	public void setUserSessionBean(UserSessionBean userSessionBean) {
		this.userSessionBean = userSessionBean;
	}
	
	*//**
	 * @return the costoEvitado
	 *//*
	public GamTbPg[] getCostoEvitado() {
		return costoEvitado;
	}

	*//**
	 * @param costoEvitado the costoEvitado to set
	 *//*
	public void setCostoEvitado(GamTbPg[] costoEvitado) {
		this.costoEvitado = costoEvitado;
	}

	*//**
	 * @return the costoEvitadoList
	 *//*
	public List<SelectItem> getCostoEvitadoList() {
		return costoEvitadoList;
	}

	*//**
	 * @param costoEvitadoList the costoEvitadoList to set
	 *//*
	public void setCostoEvitadoList(List<SelectItem> costoEvitadoList) {
		this.costoEvitadoList = costoEvitadoList;
	}

	

}
*/